﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DAO;
using DTO;

namespace BUS
{
    public class SachBUS
    {
        public static bool Them(DTO.SachDTO dto)
        {
            //tạo chuỗi thông báo lỗi
            string thongBaoLoi = "";

            //kiểm tra hợp lệ
            if (KiemTra(dto, ref thongBaoLoi) == false)
            {
                throw new Exception(thongBaoLoi);
            }

            //thực hiện thêm
            SachDAO.Them(dto);

            return true;
        }

        private static bool KiemTra(SachDTO dto, ref string thongBaoLoi)
        {
            //đọc tham số
            int khoangCachNamXuatBan = (int)ThamSoBUS.KhoangCachNamXuatBan().GiaTri;

            //kiểm tra khoảng cách năm xuất bản
            if (DateTime.Today.Year < dto.NamXuatBan)
            {
                thongBaoLoi = "Chưa tới năm xuất bản sách này";
                return false;
            }

            //kiểm tra khoảng cách năm xuất bản
            if ((DateTime.Today.Year - dto.NamXuatBan) > khoangCachNamXuatBan)
            {
                thongBaoLoi = "Chỉ nhận sách xuất bản trong " + khoangCachNamXuatBan + " năm";
                return false;
            }

            return true;
        }

        public static List<SachDTO> DocDanhSach(int trangThai)
        {
            return SachDAO.DocDanhSach(trangThai);
        }

        public static List<SachDTO> TraCuu(SachDTO s)
        {
            return SachDAO.TraCuu(s);
        }

        public static bool GhiNhanMatSach(SachDTO dtoSach)
        {
            SachDAO.GhiNhanMatSach(dtoSach);

            return true;
        }
    }
}
